import {getToken,setToken,removeToken } from "@/utils/auth";
import { login,getUserProfile ,getUserDetailById, logout} from "@/api/user";
// 暴露子仓库实例对象(核心配置)
export default {
  namespaced:  true,
  state:{
    token:getToken() || '',//优先从本地存储token
    userInfo:{}
  },
  mutations:{
    updateToken(state,token){
      state.token=token
      // 进行token持久化
      setToken(token)
    },
    removeToken(state,token){
      state.token=token
      // 进行token持久化
      removeToken()
    },
    updateUserInfo(state,info){
      state.userInfo = info
    },
    // 清空用户信息
    removeUserInfo(state){
      state.userInfo ={}
    }
  },

  actions:{
    // 发送请求获取token 存储vuex中
   async userLogin(context,loginForm){
    // 发送请求获取token
      const res= await login(loginForm)
      console.log(res.data);
      // 将token存到vuex中
      context.commit('updateToken',res.data)
      },

// 发送请求 获取用户信息
async getUserInfo(context){
      try {
        const res = await getUserProfile()
        const  info =await getUserDetailById(res.data.userId)
        // console.log(info);
          // console.log(res.data);
          context.commit('updateUserInfo',{...res.data,...info.data})
      } catch (error) {
        console.log(error);
      }
      
       
        
    },
    // 清空用户信息 token数据
    logout(context){
      context.commit('removeToken')
      context.commit('removeUserInfo')
    }
    

  }
}

